package com.tjetc._4method_quotation;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Stream;

public class _1MethodQuotation {
    public static void main(String[] args) {
        // 方法引用
        List<Integer> list = new ArrayList<>();
        list.add(1);
        Stream<Integer> stream = list.stream();


//        stream.forEach(new Consumer<Integer>() {
//            @Override
//            public void accept(Integer integer) {
//                System.out.println(integer);
//            }
//        });
        // 流一旦被关闭 就必须重新获取
        stream.forEach(integer -> System.out.println(integer));

        // 使用方法引用
        /*
            2. 方法引用的时机
              a. 被引用的方法在重写方法中
              b. 被引用的方法在参数上，返回值上和重写方法一致，并且被引用方法的参数就是重写方法的参数
            3. 写法：
              a. 删除重写方法的参数， 删除->符号，删除被引用方法的参数，将被引用方法的.换成：：
         */
        stream.forEach(System.out::println);

    }
}
